﻿<UserControl x:Class="Framework.UI.TestHarness.Views.ThemeView"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             xmlns:metro="http://schemas.codeplex.com/elysium"
             xmlns:params="http://schemas.codeplex.com/elysium/params"
             xmlns:extra="http://schemas.extra.com/ui"
             mc:Ignorable="d" 
             d:DesignHeight="768" d:DesignWidth="1024">
    <ScrollViewer>
        <StackPanel>
            <TextBlock Margin="{Binding RelativeSource={RelativeSource Self}, Path=(params:General.BoldPadding), Mode=OneWay}"
                       Style="{StaticResource HeaderTextStyle}" 
                       Text="Modifying The Theme"/>
            
            <Grid>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="*"/>
                    <ColumnDefinition Width="*"/>
                </Grid.ColumnDefinitions>
                <Grid.RowDefinitions>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="Auto"/>
                </Grid.RowDefinitions>

                <Label Content="Application Theme"
                       Margin="{Binding RelativeSource={RelativeSource Self}, Path=(params:General.BoldPadding), Mode=OneWay}"
                       Target="{Binding ElementName=ApplicationThemeComboBox}"/>
                <ComboBox x:Name="ApplicationThemeComboBox" 
                          Grid.Column="1" 
                          Margin="{Binding RelativeSource={RelativeSource Self}, Path=(params:General.BoldPadding), Mode=OneWay}"
                          SelectedItem="{Binding Path=Theme, Source={x:Static extra:ElysiumApplication.Current}}">
                    <metro:Theme>Dark</metro:Theme>
                    <metro:Theme>Light</metro:Theme>
                </ComboBox>
                
                <Label Grid.Row="1" 
                       Content="Application AccentColor"
                       Margin="{Binding RelativeSource={RelativeSource Self}, Path=(params:General.BoldPadding), Mode=OneWay}"
                       Target="{Binding ElementName=ApplicationAccentColorTextBox}"/>
                <TextBox x:Name="ApplicationAccentColorTextBox" 
                          Grid.Column="1" 
                          Grid.Row="1" 
                          Margin="{Binding RelativeSource={RelativeSource Self}, Path=(params:General.BoldPadding), Mode=OneWay}"
                          Text="{Binding Path=AccentColor, Source={x:Static extra:ElysiumApplication.Current}}"/>

                <Label Grid.Row="2" 
                       Content="Application ContrastColor"
                       Margin="{Binding RelativeSource={RelativeSource Self}, Path=(params:General.BoldPadding), Mode=OneWay}"
                       Target="{Binding ElementName=ApplicationContrastColorTextBox}"/>
                <TextBox x:Name="ApplicationContrastColorTextBox" 
                          Grid.Column="1" 
                          Grid.Row="2" 
                          Margin="{Binding RelativeSource={RelativeSource Self}, Path=(params:General.BoldPadding), Mode=OneWay}"
                          Text="{Binding Path=ContrastColor, Source={x:Static extra:ElysiumApplication.Current}}"/>

                <Label Grid.Row="3" 
                       Content="Application SemitransparentContrastColor"
                       Margin="{Binding RelativeSource={RelativeSource Self}, Path=(params:General.BoldPadding), Mode=OneWay}"
                       Target="{Binding ElementName=ApplicationSemitransparentContrastColorTextBox}"/>
                <TextBox x:Name="ApplicationSemitransparentContrastColorTextBox" 
                          Grid.Column="1" 
                          Grid.Row="3" 
                          Margin="{Binding RelativeSource={RelativeSource Self}, Path=(params:General.BoldPadding), Mode=OneWay}"
                          Text="{Binding Path=SemitransparentContrastColor, Source={x:Static extra:ElysiumApplication.Current}}"/>

                <Label Grid.Row="4" 
                       Content="Theme (You can apply an alternative theme to a control)"
                       Margin="{Binding RelativeSource={RelativeSource Self}, Path=(params:General.BoldPadding), Mode=OneWay}"
                       Target="{Binding ElementName=ThemeComboBox}"/>
                <ComboBox extra:ThemeManager.Theme="Dark"
                          Grid.Column="1" 
                          Grid.Row="4" 
                          Margin="{Binding RelativeSource={RelativeSource Self}, Path=(params:General.BoldPadding), Mode=OneWay}"
                          SelectedItem="{Binding Path=(extra:ThemeManager.Theme), RelativeSource={RelativeSource Self}}">
                    <metro:Theme>Dark</metro:Theme>
                    <metro:Theme>Light</metro:Theme>
                </ComboBox>
                
            </Grid>
            
            <TextBlock Margin="{Binding RelativeSource={RelativeSource Self}, Path=(params:General.BoldPadding), Mode=OneWay}"
                       Style="{StaticResource HeaderTextStyle}" 
                       Text="Further Improvements"/>
            <TextBlock Margin="{Binding RelativeSource={RelativeSource Self}, Path=(params:General.BoldPadding), Mode=OneWay}"
                       Style="{StaticResource NormalTextStyle}" 
                       Text="Providing Font Size, Font Family, Window Backgrounds would be very cool."/>
            <TextBlock Margin="{Binding RelativeSource={RelativeSource Self}, Path=(params:General.BoldPadding), Mode=OneWay}"
                       Style="{StaticResource NormalTextStyle}" 
                       Text="It would be good to have a string/double resource with the font family and font size which all controls reference. Changing the font would then be possible and could be themed in the same way you do the accent colours. This would be a killer feature. Furthermore, providing a type ramp is very useful way of having headers and titles."/>
        </StackPanel>
    </ScrollViewer>
</UserControl>
